import { AxiosPromise } from 'axios'
import request from '@/hooks/utils/http'

export class PostService {

// 查询岗位列表
    static listPost(query: PostQuery): AxiosPromise<PostVO[]> {
        return request({
            url: '/system/post/list',
            method: 'get',
            params: query
        });
    }

// 查询岗位详细
    static getPost(postId: string | number): AxiosPromise<PostVO> {
        return request({
            url: '/system/post/' + postId,
            method: 'get'
        });
    }

// 获取岗位选择框列表
    static optionselect(deptId?: number | string, postIds?: (number | string)[]): AxiosPromise<PostVO[]> {
        return request({
            url: '/system/post/optionselect',
            method: 'get',
            params: {
                postIds: postIds,
                deptId: deptId
            }
        });
    }

// 新增岗位
    static addPost(data: PostForm) {
        return request({
            url: '/system/post',
            method: 'post',
            data: data
        });
    }

// 修改岗位
    static updatePost(data: PostForm) {
        return request({
            url: '/system/post',
            method: 'put',
            data: data
        });
    }

// 删除岗位
    static delPost(postId: string | number | (string | number)[]) {
        return request({
            url: '/system/post/' + postId,
            method: 'delete'
        });
    }

}
export interface PostVO extends BaseEntity {
    postId: number | string;
    deptId: number | string;
    postCode: string;
    postName: string;
    postCategory: string;
    deptName: string;
    postSort: number;
    status: string;
    remark: string;
}

export interface PostForm {
    postId: number | string | undefined;
    deptId: number | string | undefined;
    postCode: string;
    postName: string;
    postCategory: string;
    postSort: number;
    status: string;
    remark: string;
}

export interface PostQuery extends PageQuery {
    deptId: number | string;
    belongDeptId: number | string;
    postCode: string;
    postName: string;
    postCategory: string;
    status: string;
}
